﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BehaviorModel.Statistic
{
    /// <summary>
    /// Describes properties in service channel statistic.
    /// </summary>
    public interface IServiceChannelStatistic : IBlockStatistic
    {
        /// <summary>
        /// Working time.
        /// </summary>
        double WorkingTime { get; }

        /// <summary>
        /// Waiting time (down time).
        /// </summary>
        double WaitingTime { get; }

        /// <summary>
        /// Count of serviced requests.
        /// </summary>
        long CountOfServiced { get; }

        /// <summary>
        /// Count of rejected requests.
        /// </summary>
        long CountOfRejected { get; }

        /// <summary>
        /// Reject request probability.
        /// </summary>
        double RejectProbability { get; }

        /// <summary>
        /// Busy of free channel.
        /// </summary>
        bool IsBusy { get; }

        /// <summary>
        /// Queue length.
        /// </summary>
        int QueueLength { get; }

        double AverageQueueLength { get; }
    }
}
